原文地址:
http://www.eclipse.org/forums/index.php/m/660152/
问题:使用 ResourceBundle.getBundle 时,提示“Can’t find bundle for base name …”?
原因:调用 ResourceBundle.getBundle 方法时,没有指定 package。
例如:如下代码无法访问到指定的文言:
1 2 3 4 5 6 7 8 9 10
| package <package>; import java.util.Locale; import java.util.ResourceBundle; public class SimpleListResourceBundleExample { static public void main(String[] args) { ResourceBundle stats = ResourceBundle.getBundle("StatsBundle", Locale.ENGLISH); String source = (String) stats.getObject("Source"); System.out.println("Source = " + source); } }
|
1 2 3 4 5 6 7 8
| package <package>; import java.util.ListResourceBundle; public class StatsBundle_en extends ListResourceBundle { public Object[][] getContents() { return contents; } private Object[][] contents = { { "Source", new String("StatsBundle_en.java") } }; }
|
解决办法:调用 ResourceBundle.getBundle 方法时,指定 package。所以上述代码需要改成:ResourceBundle.getBundle(“.StatsBundle”,Locale.ENGLISH);